需求
需求是将 Menu 键修改为 Home 键。
Key-Pad 原理
按键部分原理图如下
可以看到不同按键串联的电阻值也不同。所以按下不同按键时 ADKEY_IN 的检测电压也会不同(不同阻值分压不同),平台端设计好接收不同电压时对应的功能,就实现了功能按键。
实现
getevent 看是否获得按键上报
1 | adb shell |
可以看到我们的 key pad 设备
按下我们需要修改的按键(现在的 MENU 键)
获得键值 0x003b,即 10 进制的 59
在 SDK/device/rockchip/common/rk29-keypad.kl 修改
1 | vi SDK/device/rockchip/common/rk29-keypad.kl |
我们把 key 59 的功能改为 MENU
验证
按键生效。
后话
另外 adb pull /system/usr/keylayout/rk29-keypad.kl
修改后直接 push 进去也可以完成任务。